package com.file.manage.domain.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.file.manage.domain.data.UserInfo;
import com.file.manage.domain.entity.User;
import com.file.manage.domain.request.RegisterRequest;
import com.file.manage.domain.request.UpdatePasswordRequest;
import com.file.manage.domain.request.UpdateUserInfoRequest;
import com.file.manage.domain.param.UserQueryParam;
import com.file.manage.infrastructure.base.Pager;
import com.file.manage.infrastructure.base.dto.query.PageQuery;
import com.file.manage.infrastructure.base.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * 用户表 服务类
 *
 * @since 2025-05-22
 */
public interface UserService extends BaseService<User> {

    /**
     * 用户注册
     */
    void register(RegisterRequest registerRequest);


    /**
     * 修改密码
     */
    void updatePassword(UpdatePasswordRequest updatePasswordRequest);

    /**
     * 用户登录
     */
    String login(String account, String password);

    /**
     * 获取当前用户信息
     */
    UserInfo getCurrentUser();

    /**
     * 修改用户信息
     */
    void updateUserInfo(UpdateUserInfoRequest request);

    /**
     * 查询用户
     */
    List<UserInfo> listUserInfo(UserQueryParam param);

    /**
     * 分页查询用户
     */
    Pager<UserInfo> pageUserInfo(PageQuery<UserQueryParam> pageQuery);

    void deleteUser(String id);
}
